﻿/**
 \file scanner.h
 Тут описан интерфейс лексического сканера: 
 экспортируемые функции и константы.
*/

FILE *GetSourceFile(void);
void GetToken(void);
void OpenSourceFile(char *filename);
void CloseSourceFile(void);
unsigned char GetCurToken(void);
unsigned long int GetCurLine(void);
unsigned char *GetIdentValue(void);

/**
 \def NUM_OF_KEYWORDS
 Общее число ключевых слов.
*/
#define NUM_OF_KEYWORDS 32

/* Числовые коды лексем */
#define lError     255
#define lIdent     254
#define lChar      253
#define lString    252
#define lInteger   251
#define lLongreal  250
#define lReal      249

#define lArray     0
#define lBegin     1
#define lBy        2
#define lCase      3
#define lConst     4
#define lDo        5
#define lDiv       6
#define lEnd       7
#define lElse      8
#define lElsif     9
#define lImport    10
#define lIs        11
#define lIf        12
#define lModule    13
#define lMod       14
#define lNil       15
#define lOf        16
#define lOr        17
#define lPointer   18
#define lProcedure 19
#define lRepeat    20
#define lRecord    21
#define lReturn    22
#define lTo        23
#define lType      24
#define lThen      25
#define lTrue      26
#define lFalse     27
#define lUntil     28
#define lUnion     29
#define lVar       30
#define lWhile     31

#define lTilda       32
#define lDotComma    33
#define lPlus        34
#define lMinus       35
#define lMultiple    36
#define lDivide      37
#define lAnd         38
#define lFly         39
#define lVtLine      40
#define lComma       41
#define lEqual       42
#define lNotEqual    43
#define lLess        44
#define lMore        45
#define lLeftType2   46
#define lRightType2  47
#define lLeftType3   48
#define lRightType3  49
#define lDblQuote    50
#define lSimpleQuote 51
#define lDoubleDot   52
#define lDot         53
#define lLeftType1   54
#define lRightType1  55
#define lAssign      56
#define lLessEqual   57
#define lMoreEqual   58
#define lTwoDot      59

